/*
 * Copyright 2007 Pleso.net
 * 
 * Licensed under the GNU Lesser General Public License, Version 2.1 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.gnu.org/licenses/lgpl.html
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package net.pleso.framework.client.dal;

/**
 * This interface represents data column (database field). It is used for column
 * strongly typed identification. Also it contains information about column
 * verbose name (caption), corespondenting database field name and value
 * nullability.
 */
public interface IDataColumn {

	/**
	 * Returns localized data column caption. It can be used for column
	 * representation on user interface controls.
	 * 
	 * @return column caption
	 */
	String getCaption();

	/**
	 * Returns native data column name. It is mostly used in sort expressions
	 * and its value equals to correspondent database fiels name.
	 * 
	 * @return native column name
	 */
	String getName();

	/**
	 * Checks whether this data column allows <code>null</code> value.
	 * 
	 * @return <code>true</code> if column allows <code>null</code> value
	 */
	boolean isAllowNull();
}
